home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 6
/
The Arsenal Files 6 (Arsenal Computer).ISO
/
sync
/
bang2.zip
/
BANG.NOT
< prev
next >
Wrap
Text File
|
1996-03-09
|
14KB
|
410 lines
# ┌────────[ BANG Ver 2.0 - The Russian Roulette Credit Lottery ]────────────┐
# │ │
# │ Original Script by: Charles McColm (Oct 1995) │
# │ Revised & Notated Script by: Robert Nykvist (Mar 1996) │
# │ │
# │ Revision Coded for *SynchronetBBS ver 2.20 rev B using *Baja 2.04 │
# │ This script may not work on older or newer versions. │
# │ │
# │ If this code is modified, please give authors appropriate credit. │
# └──────────────────────────────────────────────────────────────────────────┘
# For Node_action Variable
!include nodedefs.inc
# ┌──────────────────────────┐
# │ Define Integer Variables │
# └──────────────────────────┘
# Counter for Loops
int COUNT
# Chamber Bullet is in (Random Selected)
int CHAMBER
# How many times to pull the trigger (Player selected)
int ROUNDS
# Total Winnings
int WINNINGS
# ┌─────────────┐
# │ Top of Menu │
# └─────────────┘
:top
cls
crlf
crlf
print "nr ▀▄▀▄▀▄▀▄▀▄▀▄▀\r\n"
print "yh BANG!\r\n"
print "nr ▄▀▄▀▄▀▄▀▄▀▄▀▄"
crlf
crlf
crlf
print "\r\nhw <───n──┐"
print "\r\n hr¡n │"
print "\r\nh r∙ w I - cBANG Info hk │"
print "\r\nhk │w F - mFire Away hk │"
print "\r\nhk │w Q - gQuit to the BBS r∙"
print "\r\nn │hw r¡"
print "\r\nn └──wh──>"
# ┌─────────────────────────────┐
# │ Defining Node Action Area & │
# │ ASYNC Call before Prompts │
# └─────────────────────────────┘
node_action node_xtrn
async
# ┌────────────────┐
# │ Command Prompt │
# └────────────────┘
getcmd fiq?
logkey_comma
# ┌────────────────┐
# │ Redisplay Menu │
# └────────────────┘
cmdkey ?
goto top
end_cmd
# ┌─────────────────┐
# │ Quit the Script │
# └─────────────────┘
cmdkey q
goto byebye
end_cmd
# ┌───────────────────┐
# │ Display Info Menu │
# └───────────────────┘
cmdkey i
cls
crlf
crlf
crlf
print " nhirWARNING\r\n\r\n"
print " ncThis BBS's h44 Magnum ncgun has hsix ncchambers.\r\n"
print " When you pull the trigger on an empty chamber,\r\n"
print " you instantly get hm50k nccredits.\r\n\r\n"
print " If you lose in Russian Roulette, you hgdie.\r\n"
print " yBANG ncis a stupid game with high risk too!\r\n\r\n"
print " If you pull the trigger when there is a bullet in the chamber,\r\n"
print " the hBBS hangs upnc, and you hlose 30 minutes nctime.n\r\n\r\n"
print " rhNEVERnc stick amh realnc gun to your head for any reason!n\r\n\r\n"
print " @PAUSE@"
goto top
end_cmd
# ┌──────────────────────────────┐
# │ Fire The Gun (Play the Game) │
# └──────────────────────────────┘
cmdkey f
# ┌──────────────────────────────────────┐
# │ Setting/Resetting Variables to Zero │
# └──────────────────────────────────────┘
set WINNINGS 0
set COUNT 0
set CHAMBER 0
set ROUNDS 0
# ┌────────────────────────────────────────────────────┐
# │ "Which of 6 chambers is the bullet in? │
# │ Choose Random Number 0-5 for variable "chamber." │
# │ Add 1 to "Chamber" making it 1-6, instead of 0-5. │
# └────────────────────────────────────────────────────┘
random CHAMBER 6
add CHAMBER 1
# ┌─────────────────────────────────────────────┐
# │ User Input Menu for Number of Trigger Pulls │
# └─────────────────────────────────────────────┘
cls
crlf
print "yhLoading bOne yBullet into the Gun.\r\n"
crlf
print "rhPull trigger how many times?y (w1-5y)r : "
# ┌───────────────────────────────────────────────────────┐
# │ Prompting User for number of trigger pulls, maximum 5 │
# └───────────────────────────────────────────────────────┘
getnum ROUNDS 5
crlf
# ┌─────────────────────────────────────────────────────────────┐
# │ Pressing "Q" sometimes gave a "negative" (-1) number and │
# │ locked script in a non-stop loop. This prevents negatives. │
# │ If you know why "getnum" accepts letter Q, let me know! RN │
# └─────────────────────────────────────────────────────────────┘
compare ROUNDS 0
if_less
goto top
end_if
# ┌──────────────────────────────────────────────────┐
# │ Display formality - Send User "Time" or "Times?" │
# └──────────────────────────────────────────────────┘
compare ROUNDS 1
if_true
printf "mhPulling triggery %1ld mtime...\r\n" ROUNDS
crlf
print "whAiming at gYOURh head @USER@, cocking hammer back...yReady?\r\n"
crlf
pause
else
printf "mhPulling triggery %1ld mtimes...\r\n" ROUNDS
crlf
print "whAiming at gYOUR whead @USER@, cocking hammer back...yReady?\r\n"
crlf
pause
end_if
# ┌─────────────────────────────────────────────────────────┐
# │ Pulls of the trigger compared to bullet chamber. │
# │ *Is the user going to blow their brains out?* Yes/No? │
# │ If number of pulls is less than the bullet chamber, │
# │ the caller LIVES. If the number of pulls equals or │
# │ exceeds the bullet chamber number, SPLAT! │
# └─────────────────────────────────────────────────────────┘
compare ROUNDS CHAMBER
if_less
# ┌──────────────────────────────────────────────────────┐
# │ Trigger pulls less than bullet chamber number. │
# │ User Lives! Beginning LIVES Loop │
# └──────────────────────────────────────────────────────┘
:LIVES
# ┌──────────────────────────────────────────────────────┐
# │ Loop to display the number of rounds user shot. │
# │ Variable COUNT tracks loop count. (Bullets shot) │
# └──────────────────────────────────────────────────────┘
compare COUNT ROUNDS
if_true
# ┌──────────────────────────────────────────────────────┐
# │ User Lives! Send User to DONELOOP after last shot. │
# └──────────────────────────────────────────────────────┘
goto doneloop
end_if
# ┌──────────────────────────────────────────────────────┐
# │ Customize your system feedback to your callers. │
# └──────────────────────────────────────────────────────┘
switch COUNT
case 0
# ┌───────────────────────────────────────────────────────┐
# │ Send remote caller an ASCII Bell for each shot fired. │
# └───────────────────────────────────────────────────────┘
print_remote ""
print "hrCLICK! ;; b(W h e w!)\r\n"
end_case
case 1
print_remote ""
print "hgCLICK! ;; b(W h e w! You are a brave person!)\r\n"
end_case
case 2
print_remote ""
print "hyCLICK! ;; b(J e e s h! Three rounds? You gotta be nuts!)\r\n"
end_case
case 3
print_remote ""
print "hcCLICK! ;; b(Y e o w! 4 squeezes? You must wanna logoff!)\r\n"
end_case
case 4
print_remote ""
print "hmCLICK! ;; b(W O W! You got big nads or are suicidal!)\r\n"
print "\r\ny*BONUS* 100k Credits!\r\n"
log "$+ BONUS credit adjustment: 100k"
adjust_user_credits 100
add WINNINGS 100
end_case
end_switch
# ┌──────────────────────────────────────────────────────┐
# │ Award user credits each trigger pull and log results │
# │ pausing display for user between rounds shot. │
# └──────────────────────────────────────────────────────┘
adjust_user_credits 50
add WINNINGS 50
log "$+ credit adjustment: 50k"
crlf
pause
add COUNT 1
# ┌──────────────────────────┐
# │ End of Caller Lives Loop │
# └──────────────────────────┘
goto LIVES
else
# ┌─────────────────────────────────────────────────────┐
# │ Number of rounds shot exceed bullet chamber number! │
# │ SPLAT goes the User - Beginning of SPLAT Loop │
# │ Variable COUNT loop. User dies, but on which shot? │
# └─────────────────────────────────────────────────────┘
:SPLAT
add COUNT 1
# ┌─────────────────────────────────────────────────────────┐
# │ Kill the user only during the live round in the chamber │
# │ Variable "chamber" is compared to "count" of loop. │
# └─────────────────────────────────────────────────────────┘
compare COUNT CHAMBER
if_equal
# ┌───────────────────────────────────────────────────────────────┐
# │ If count=chamber, bullet is in chamber. User pays the price! │
# │ Use ARS security for salvation to valued callers. <Grin> │
# └───────────────────────────────────────────────────────────────┘
compare_ars level 50
if_true
goto lucky
end_if
# ┌───────────────────────────────────────────────────┐
# │ Die User! Punish them as you see fit. <Chuckle> │
# └───────────────────────────────────────────────────┘
print "chBANG! ;; r SPLAT... ;; g T,H,U,D,!\r\n"
print "\r\nch,You bblewc your brains out y@USER@! c Whadda rBloodyc Mess!\r\n"
print "\r\nhw,You have just fallen down and you can't get up.b HaHa!\r\n"
print "\r\nm,Subtracting y30 mminutes! Call again...if you have time...gGoodbye...\r\n"
adjust_user_minutes -30
log ">> minute adjustment: -30"
crlf
pause
hangup
else
# ┌─────────────────────────────────────────────────────┐
# │ Trigger pulled on empty chamber. User still lives. │
# │ Uses Switch/Case loop for visual feedback to User. │
# └─────────────────────────────────────────────────────┘
switch COUNT
case 1
print_remote ""
print "hrCLICK! ;; b(W h e w!)\r\n"
end_case
case 2
print_remote ""
print "hgCLICK! ;; b(W h e w! You are a brave person!)\r\n"
end_case
case 3
print_remote ""
print "hyCLICK! ;; b(J e e s h! Three rounds? You gotta be nuts!)\r\n"
end_case
case 4
print_remote ""
print "hcCLICK! ;; b(Y e o w! 4 squeezes? You must wanna logoff!)\r\n"
end_case
case 5
print_remote ""
print "hmCLICK! ;; b(W O W! You got big nads or you are suicidal!)\r\n"
print "\r\nyi*nhwBONUSyi* nch100k ncCredits!\r\n"
end_case
end_switch
crlf
pause
# ┌───────────────────┐
# │ End of SPLAT Loop │
# └───────────────────┘
goto SPLAT
end_if
end_if
# ┌─────────────────────────────────────────────────────────┐
# │ End of Firing Gun Option. Return to Menu if User Lives │
# └─────────────────────────────────────────────────────────┘
goto top
end_cmd
# ┌──────────────────────────────────────┐
# │ Just in case something goes wrong... │
# └──────────────────────────────────────┘
goto top
# ┌──────────────────────────────────────────────────────────────┐
# │ Caller played Russian Roulette (BANG) and lived. Reward'em! │
# │ Go to Top of menu and see if they want to play again. YeeHa! │
# └──────────────────────────────────────────────────────────────┘
:doneloop
print "chYou took a HUGE risk and msurvived! c Congratulations!\r\n"
printf "\r\nhgAddingy %ld k gCredits to your Account!\r\n" WINNINGS
crlf
pause
goto top
# ┌──────────────────────────────┐
# │ Bailout for ARS LUCKY users. │
# │ Go to Top of menu and see │
# │ if they want to play again. │
# └──────────────────────────────┘
:lucky
print "chYou just rblewc your brains out g@USER@! c But because of your high\r\n"
print "security level though, you were mNOTc disconnected from the BBS.\r\n"
crlf
pause
print "mSubtracting y30 mminutes from your on-line time today!\r\n"
crlf
adjust_user_minutes -30
log ">> minute adjustment: -30"
pause
goto top
# ┌─────────────┐
# │ Exit Script │
# └─────────────┘
:byebye
# ┌─────────────────────┐
# │ Source of Softwares │
# └─────────────────────┘
#
# *BAJA v2.04 · Synchronet Shell/Module Compiler ·
#
# *Synchronet Multinode BBS Software Version 2.20 Rev B
#
# Copyright 1995 Digital Dynamics
# PO Box 501
# Yorba Linda, CA 92686
#
# Voice: 714-529-6328 BBS: 714-529-9525 V.32bis
# FAX: 714-529-9721 529-9547 V.FC
# FIDO: 1:103/705 529-9721 ZyXEL